package com.wingsboat;

/**
 * @author wangzhong
 * @description:
 * 题意：会输入一串字符串，用空格间隔的正整数，再输入一个最低值，求这串字符串中，连续的最长的子串，平均值大于等于给出的最低值
 *
 * 要求：
 * - 最后只保留最长的子串索引
 * - 子串长度相同时，最后输出按出现的先后顺序打印
 * - 输入：“0 0 100 99 2 2 99 0 2 2”  输出：“0-1 4-5 7-8”
 * - 输入：“0 0 100 99 2 2 99 0 2”    输出：“7-9”
 * - 没有符合要求的子串则输出NULL
 * @date 2024/7/22 16:19
 */
public class Test13 {
    public static void main(String[] args){
        int arr[] = {0,1,1,1,0};
        int average = 1;
        int r;
        String result = null;
        int length = 0;
        for(r=1;r<arr.length;r++){
            int l;
            for(l=0;l<r;l++ ){
                if(getSum(l,r,arr)>=average*(r-l+1)){
                    if(length == r-l+1){
                        if(result==null){
                            result = l+"-"+r;
                        }else{
                            result =result + " "+l+"-"+r;
                        }
                    }else if(length < r-l+1){
                        result = l+"-"+r;
                        length = r-l+1;
                    }
                }
            }
        }

        System.out.println(result);
    }

    public static int getSum(int l,int r,int[] arr){
        int sum = 0;
        for(int i = l;i<=r;i++){
            sum=sum+arr[i];
        }
        return sum;
    }
}
